home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / PPC1B3AA.ZIP / DOS2UNIX.PPS < prev    next >
Text File  |  1996-08-29  |  2KB  |  85 lines

  1. ;----------------------------------------------------------------------------
  2. ; Copyright(C) 1996, The AEGiS Corporation
  3. ;----------------------------------------------------------------------------
  4. ;
  5. ; FUNCTION DosToUnix()
  6. ;
  7. ; Convert a DOS date (Date & Time) to an UNIX Date (count of seconds since
  8. ; midnight 01/01/70)
  9. ;
  10. ;----------------------------------------------------------------------------
  11. #lib
  12. #nouser
  13.  
  14. Declare Function DosToUnix(Date DateValue, Time TimeValue) UNSIGNED
  15.  
  16. ;--------------------------------------------------------------------------
  17. ; DOSdate&time -> UNIXdate&time
  18. ;
  19. Function DosToUnix(Date DateValue, Time TimeValue) UNSIGNED 
  20. int tyear
  21. int tday
  22. int tmonth
  23. unsigned dat
  24.  
  25. tday = day(DateValue)
  26. tmonth = month(DateValue)
  27. tyear = year(DateValue)-1968
  28.  
  29. if (tyear % 4 = 0) then
  30.     select case tmonth
  31.         case 2
  32.             tday = tday + 31
  33.         case 3
  34.             tday = tday + 60
  35.         case 4
  36.             tday = tday + 91
  37.         case 5
  38.             tday = tday + 121
  39.         case 6
  40.             tday = tday + 152
  41.         case 7
  42.             tday = tday + 182
  43.         case 8
  44.             tday = tday + 213
  45.         case 9
  46.             tday = tday + 244
  47.         case 10
  48.             tday = tday + 274
  49.         case 11
  50.             tday = tday + 305
  51.         case 12
  52.             tday = tday + 335
  53.     end select                                      
  54. else
  55.     select case tmonth
  56.         case 2
  57.             tday = tday + 31
  58.         case 3
  59.             tday = tday + 59
  60.         case 4
  61.             tday = tday + 90
  62.         case 5
  63.             tday = tday + 120
  64.         case 6
  65.             tday = tday + 151
  66.         case 7
  67.             tday = tday + 181
  68.         case 8
  69.             tday = tday + 212
  70.         case 9
  71.             tday = tday + 243
  72.         case 10
  73.             tday = tday + 273
  74.         case 11
  75.             tday = tday + 304
  76.         case 12
  77.             tday = tday + 334
  78.     end select                                      
  79. end if
  80.  
  81. dat = tday * 86400 + (tyear - 2) * 365 * 86400 + (tyear/4)*86400 + TimeValue
  82. DosToUnix = dat
  83. EndFunc
  84.  
  85.